#include <iostream>
using namespace std;

const int N=45;
int dp[N][N][N][N];
const int M=400;
int arr[M], cnt[5];


int main()
{
	int n, m; cin>>n>>m;
	
	for(int i=1; i<=n; i++) cin>>arr[i];
	
	for(int i=1; i<=m; i++) 
	{
		int x; cin>>x;
		cnt[x]++;
	}
	
	dp[0][0][0][0]=arr[1];
	
	for(int a=0; a<=cnt[1]; a++)
		for(int b=0; b<=cnt[2]; b++)
			for(int c=0; c<=cnt[3]; c++)
				for(int d=0; d<=cnt[4]; d++)
				{
					int i=1+a+2*b+3*c+4*d;
					int& k=dp[a][b][c][d];
					
					if(a>0) k=max(k, dp[a-1][b][c][d]+arr[i]);
					if(b>0) k=max(k, dp[a][b-1][c][d]+arr[i]);
					if(c>0) k=max(k, dp[a][b][c-1][d]+arr[i]);
					if(d>0) k=max(k, dp[a][b][c][d-1]+arr[i]);
				}
	
	cout<<dp[cnt[1]][cnt[2]][cnt[3]][cnt[4]];
	
	return 0;
}
